Skip to content

Рефакторинг backend/frontend, усиление надежности и локального запуска - #3

Open
aandrey58 wants to merge 2 commits into
sputnik-llc:mainfrom
aandrey58:feat/fullstack-hardening
Open

Рефакторинг backend/frontend, усиление надежности и локального запуска#3
aandrey58 wants to merge 2 commits into
sputnik-llc:mainfrom
aandrey58:feat/fullstack-hardening

Conversation

@aandrey58

Copy link
Copy Markdown

Что сделано

  • Выполнен рефакторинг backend и frontend без изменения целевой бизнес-логики.
  • Усилен backend API:
    • добавлена базовая защита через x-api-key для основных эндпоинтов;
    • добавлена пагинация для /files и /alerts (limit / offset);
    • улучшен upload-пайплайн: запись чанками, ограничение размера, базовая валидация расширения и MIME, проверка сигнатуры PDF.
  • Выполнена оптимизация backend:
    • уменьшено потребление памяти при загрузке и обработке файлов;
    • ограничен объем читаемых данных при извлечении метаданных в фоновых задачах.
  • Проведена декомпозиция frontend по слоям:
    • lib — API-клиент и конфигурация запросов;
    • hooks — загрузка данных дашборда и отдельная логика upload;
    • components — таблицы и модальное окно вынесены в переиспользуемые UI-компоненты;
    • types — выделены DTO-типы.
  • Исправлены инфраструктурные и DX-проблемы:
    • обновлены README (корневой и frontend),
    • добавлены .env примеры,
    • расширен .gitignore,
    • поправлены Docker/dev-конфиги.

Зачем

Цель изменений — сделать проект стабильнее, безопаснее и проще в сопровождении, а также закрыть требования тестового задания по рефакторингу backend, оптимизации и разбиению frontend-логики на слои.

Проверка

  • uv run pytest tests (backend)
  • python -m compileall src (backend)
  • npm run build (frontend)
  • Ручной smoke: загрузка файла, обработка, отображение алертов
  • Проверка x-api-key:
    • без заголовка — запрос отклоняется,
    • с валидным ключом — 200 OK

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant